When a system comprising a programmable component needing to be configured is turned on, the programmable component initiates a configuration phase during which it reads a configuration file (“bitstream”) contained in a read-only memory to which the programmable component is directly connected.
At the end of the configuration phase, if the configuration file does not contain any errors, the programmable component is configured according to the configuration file.
In certain configurations, a microprocessor is thus “embedded” in the programmable component. This microprocessor is then able to execute the instructions of an application code stored in another read-only memory, called application memory, which is also directly connected to the programmable component. The application code is dedicated to the microprocessor which has been configured and is therefore associated with a configuration file.
Advantageously, owing to the microprocessor, the application code makes it possible, to download from outside the system and write in the corresponding memories, a new configuration file and the related application code. For example, this new configuration file corresponds to a version of the microprocessor incorporating functional evolutions, fixes for “bugs,” etc.
However, if the configuration file is corrupted, the configuration phase of the programmable component fails and the programmable component is in a state that does not make it possible to execute the application code.
In that situation, the system is not operational. In particular, it is incapable of downloading a new configuration file that would make it possible to correctly reconfigure the programmable component. It is thus necessary to bring the system back to its manufacturer so the latter can force the reconfiguration of the programmable component from a configuration file stored in an external memory relative to the system, the programmable component accessing this memory using a removable connector of the “JTAG” type.